home *** CD-ROM | disk | FTP | other *** search
/ CD Classic 39 / CD CLASSIC #39 (1998).iso / EMPRESA / visio / Vistdstd / Install / Data.Z / Network.FRM < prev    next >
Text File  |  1996-09-03  |  5KB  |  160 lines

  1. VERSION 4.00
  2. Begin VB.Form Network 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H80000005&
  5.    Caption         =   "Network Diagram Example"
  6.    ClientHeight    =   2280
  7.    ClientLeft      =   1095
  8.    ClientTop       =   1485
  9.    ClientWidth     =   7365
  10.    BeginProperty Font 
  11.       name            =   "MS Sans Serif"
  12.       charset         =   0
  13.       weight          =   700
  14.       size            =   8.25
  15.       underline       =   0   'False
  16.       italic          =   0   'False
  17.       strikethrough   =   0   'False
  18.    EndProperty
  19.    ForeColor       =   &H80000008&
  20.    Height          =   2685
  21.    Left            =   1035
  22.    LinkTopic       =   "Form1"
  23.    ScaleHeight     =   2280
  24.    ScaleWidth      =   7365
  25.    Top             =   1140
  26.    Width           =   7485
  27.    Begin VB.Label Label1 
  28.       Appearance      =   0  'Flat
  29.       BackColor       =   &H80000005&
  30.       Caption         =   "The Form_Load procedure of this form creates a Visio network diagram from a database."
  31.       ForeColor       =   &H80000008&
  32.       Height          =   855
  33.       Left            =   1560
  34.       TabIndex        =   0
  35.       Top             =   480
  36.       Width           =   4215
  37.    End
  38. End
  39. Attribute VB_Name = "Network"
  40. Attribute VB_Creatable = False
  41. Attribute VB_Exposed = False
  42. ' -----------------------------------------------------------------------------
  43. ' Copyright (C) 1996 Visio Corporation. All rights reserved.
  44. '
  45. ' You have a royalty-free right to use, modify, reproduce and distribute
  46. ' the Sample Application Files (and/or any modified version) in any way
  47. ' you find useful, provided that you agree that Visio has no warranty,
  48. ' obligations or liability for any Sample Application Files.
  49. ' -----------------------------------------------------------------------------
  50. Option Explicit
  51. Private Sub Form_Load()
  52. ' This example demonstrates generating a Visio drawing from the data contained
  53. ' in a database.
  54.  
  55. ' Declare database variables
  56. Dim NetBase As DAO.Database
  57. Dim NetInfo As DAO.Recordset
  58.  
  59. ' Declare Visio variables
  60. Dim Visio As Visio.Application
  61. Dim NetDiagram As Visio.Page
  62. Dim NetStencil As Visio.Document
  63. Dim Master As Visio.Master
  64. Dim Shape As Visio.Shape
  65. Dim TextShape As Visio.Shape
  66. Dim Ethernet As Visio.Shape
  67. Dim ControlCell As Visio.Cell
  68. Dim ConnectCell As Visio.Cell
  69. Dim Chars As Visio.Characters
  70.  
  71. ' Declare miscellaneous variables
  72. Dim Digit As Integer
  73. Dim NodeType As String
  74. Dim Label As String
  75. Dim Index As Integer
  76. Dim XPos As Double
  77.  
  78.     ' Open the database and get the NetInfo table
  79.     Set NetBase = OpenDatabase(App.Path & "\network.mdb", True, True)
  80.     Set NetInfo = NetBase.OpenRecordset("NetInfo")
  81.  
  82.     ' Get a Visio Object that is already running.
  83.     On Error Resume Next
  84.     Set Visio = GetObject(, "Visio.Application")
  85.     If Err Then
  86.         MsgBox "Launch Visio First"
  87.         End
  88.     End If
  89.     On Error GoTo 0
  90.  
  91.     ' Open the NetDB template and retrieve the stencil
  92.     Set NetDiagram = Visio.Documents.Add("VB Solutions.vst").Pages(1)
  93.     Set NetStencil = Visio.Documents("VB Solutions.vss")
  94.     
  95.     ' Set the size of the Page. We have to access cells in the special
  96.     ' shape "thePage" where page attributes are stored.
  97.     NetDiagram.Shapes("thePage").Cells("PageWidth").Formula = 8
  98.     NetDiagram.Shapes("thePage").Cells("PageHeight").Formula = 2.5
  99.  
  100.     ' Drop the Ethernet master onto the page.
  101.     Set Master = NetStencil.Masters("EtherNet")
  102.     Set Ethernet = NetDiagram.Drop(Master, 1, 1)
  103.  
  104.     ' Extend the Shape to fill up the whole page.
  105.     Ethernet.SetBegin 0.5, 2
  106.     Ethernet.SetEnd 7.5, 2
  107.  
  108.     ' Loop over each record in the database.
  109.     NetInfo.MoveFirst
  110.     XPos = 1
  111.     Digit = Asc("1")
  112.     While Not NetInfo.EOF
  113.         Visio.ScreenUpdating = False
  114.  
  115.         ' Drop a node symbol on the page for this database record.
  116.         NodeType = NetInfo.Fields("Node")
  117.         Set Master = NetStencil.Masters(NodeType)
  118.         Set Shape = NetDiagram.Drop(Master, XPos, 0.875)
  119.         XPos = XPos + 1.5
  120.  
  121.         ' Add a label to each node symbol in the diagram.
  122.         Label = NetInfo.Fields("Name")
  123.         Label = Label & Chr$(13) & Chr$(10)
  124.         Label = Label & NetInfo.Fields("Dept")
  125.         Shape.Text = Label
  126.  
  127.         ' Fill in the Data1 Field in each shape from the database spec field.
  128.         ' This information is available in the FormatSpecial dialog.
  129.         Shape.Data1 = NetInfo.Fields("Spec")
  130.  
  131.         ' Connect the network lines to the computers. The EtherNet shape has
  132.         ' control handles that can be glued to the connection points on the
  133.         ' computer shapes. The top connection point on each node is
  134.         ' always the 5'th one.
  135.         Set ControlCell = Ethernet.Cells("Controls.X" & Chr$(Digit))
  136.         Digit = Digit + 1
  137.         Set ConnectCell = Shape.Cells("Connections.X5")
  138.         ControlCell.GlueTo ConnectCell
  139.  
  140.         ' Embolden the first line of the text on each shape. Since this shape
  141.         ' is a group, dive down and get the shape that the text is really on.
  142.         Index = Shape.Shapes.Count
  143.         Set TextShape = Shape.Shapes(Index)
  144.         Set Chars = TextShape.Characters
  145.         Chars.End = InStr(TextShape.Text, Chr$(13)) - 1
  146.         Chars.CharProps(visCharacterStyle) = visBold
  147.  
  148.         Visio.ScreenUpdating = True
  149.         NetInfo.MoveNext
  150.     Wend
  151.  
  152.  
  153.     NetInfo.Close
  154.     NetBase.Close
  155.  
  156. End
  157.  
  158. End Sub
  159.  
  160.